package com.hdu.byteBuffer;


import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;

import static com.hdu.utils.ByteBufferUtil.debugAll;

public class Test {

    public static void main(String[] args) {
        test1();
    }


    public static void test1() {
        ByteBuffer buffer = ByteBuffer.allocate(10);
        buffer.put((byte) 'a');
        debugAll(buffer);
        buffer.put("bcdef".getBytes(StandardCharsets.UTF_8));
        debugAll(buffer);
        // 切换为读模式
        buffer.flip();
        System.out.println(buffer.get());
        debugAll(buffer);
        // 压缩
        buffer.compact();
        debugAll(buffer);
        buffer.put("gh".getBytes(StandardCharsets.UTF_8));
        debugAll(buffer);
        // 从头开始读
        buffer.flip();
        buffer.get(new byte[7]);
        debugAll(buffer);
        // 重新读
        buffer.rewind();
        debugAll(buffer);

        // mark 做一个标记 记录 position位置 reset 跳转到 mark的位置
        System.out.println("测试 mark 标记功能");
        buffer.mark();
        buffer.get();
        debugAll(buffer);
        buffer.reset();
        debugAll(buffer);

        // get(index) 不会改变指针
        System.out.println("测试 get(index) 不会改变指针");
        System.out.println(buffer.get(0));
        debugAll(buffer);
    }
}
